home *** CD-ROM | disk | FTP | other *** search
- /*****
- * thermMenus.c
- *
- * Handle the menus and commands for Thermometer™.
- *
- *
- * Copyright © 1991-1992 Bernard Bernstein. All rights reserved.
- *
- *
- *****/
-
- #include "thermo.h"
-
- extern WindowPtr tempWindow;
- extern WindowPtr errWindow;
- extern short quitting;
- MenuHandle myMenus[4];
- extern Boolean waiting;
-
-
- /****
- * SetUpMenus()
- *
- * Set up the menus and draw the menu bar.
- *
- ****/
- SetUpMenus()
- {
- short i;
-
- myMenus[appleM] = GetMenu( MENUApple );
- AddResMenu( myMenus[appleM], 'DRVR' );
- myMenus[fileM] = GetMenu(MENUFile);
- myMenus[editM] = GetMenu(MENUEdit);
- myMenus[settingsM] = GetMenu(MENUSettings);
- for ( (i=appleM); (i<=settingsM); i++ ) InsertMenu(myMenus[i], 0) ;
- DrawMenuBar();
- }
- /* end SetUpMenus */
-
-
- /****
- * AdjustMenus()
- *
- * Enable or disable the items in the Edit menu if a DA window
- * comes up or goes away. Our application doesn't do anything with
- * the Edit menu.
- *
- ****/
- AdjustMenus()
- {
- register WindowPeek wp = (WindowPeek) FrontWindow();
- short kind = wp ? wp->windowKind : 0;
- Boolean DA = kind < 0;
-
- enable(myMenus[editM], MItmUndo, DA);
- enable(myMenus[editM], MItmCut, DA);
- enable(myMenus[editM], MItmCopy, DA);
- enable(myMenus[editM], MItmPaste, DA);
- enable(myMenus[editM], MItmClear, DA);
-
- /* while we are waiting for something asynchronously, don't let */
- /* the user do something that will make another tcp request */
- enable(myMenus[settingsM], MItmTherm, !waiting);
- enable(myMenus[settingsM], MItmNetwork, !waiting);
-
- CheckItem(myMenus[fileM], MItmErr, ((WindowPeek)errWindow)->visible);
- }
-
- /***
- * enable
- *
- * Enable/disable the given menu item.
- ***/
- static enable(menu, item, ok)
- Handle menu;
- {
- if (ok)
- EnableItem(menu, item);
- else
- DisableItem(menu, item);
- }
-
-
- /*****
- * HandleMenu(mSelect)
- *
- * Handle the menu selection. mSelect is what MenuSelect() and
- * MenuKey() return: the high word is the menu ID, the low word
- * is the menu item
- *
- *****/
- HandleMenu (long mSelect)
- {
- short menuID = HiWord(mSelect);
- short menuItem = LoWord(mSelect);
- Str255 name;
- GrafPtr savePort;
- WindowPeek frontWindow;
-
- switch (menuID)
- {
- case MENUApple:
- switch (menuItem)
- {
- case MItmAbout:
- doAbout();
- break;
- default:
- GetPort(&savePort);
- GetItem(myMenus[appleM], menuItem, name);
- OpenDeskAcc(name);
- SetPort(savePort);
- break;
- }
- break;
- case MENUFile:
- switch (menuItem)
- {
- case MItmQuit:
- quitting = TRUE;
- break;
- case MItmErr:
- ToggleErrWindow();
- CheckItem(myMenus[fileM], MItmErr,
- ((WindowPeek)errWindow)->visible);
- break;
- }
- break;
- case MENUEdit:
- if (!SystemEdit(menuItem-1))
- SysBeep(5);
- break;
- case MENUSettings:
- switch (menuItem)
- {
- case MItmTherm:
- changeThermPrefs();
- break;
- case MItmNetwork:
- changeNetPrefs();
- break;
- }
- break;
- }
- }
- /* end HandleMenu */
-
-